/*
  开关灯
 【题目描述】
    假设有 N 盏灯( N 为不大于 5000 的正整数)，从 1 到 N 按顺序依次编号，初始时全部处于开启状态；
    有 M 个人( M 为不大于 N 的正整数)也从 1 到 M 依次编号。
      第一个人(1号)将灯全部关闭，
      第二个人(2号)将编号为2的倍数的灯打开，
      第三个人(3号)将编号为3的倍数的灯做相反处理（即将打开的灯关闭，将关闭的灯打开）。
      依照编号递增顺序，以后的人都和3号一样，将凡是自己编号倍数的灯做相反处理。
    请问：当第 M 个人操作之后，哪几盏灯是关闭的，按从小到大输出其编号，其间用逗号间隔。
 【输入】
    输入正整数 N 和 M，以单个空格隔开。
 【输出】
    顺次输出关闭的灯的编号，其间用逗号间隔。
 【输入样例】
    10 10
 【输出样例】
    1,4,9
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int a[5005];  // a[i] 表示第 i (i > 0) 盏灯的开关状态. 0为关闭，1为开启
    int n, m;

    cin >> n >> m;

    for (int i = 2; i <= m; i++) {
        for (int j = 1; j <= n; j++) {
            if (j % i == 0) {
                if (a[j] == 0) {
                    a[j] = 1;
                } else {
                    a[j] = 0;
                }
            }
        }
    }

    int x = 0;
    for (int i = 1; i <= n; i++) {
        if (a[i] == 0) {
            x++;
            if (x == 1) {
                cout << i;
            } else {
                cout << "," << i;
            }
        }
    }

    return 0;
}